问题背景
在 Ubuntu 系统中,USB 串口设备的设备名(如 ttyUSB0、ttyUSB1)可能会在每次插拔或重启后发生变化,这给需要固定串口号的应用程序带来不便。通过创建 udev 规则,可以根据 USB 设备的 Vendor ID 和 Product ID 来固定串口号。
步骤一:获取设备信息
1. 查看 USB 设备列表
1 | lsusb |
记录设备的 Vendor ID 和 Product ID(例如:ID 0403:6001)
2. 获取详细属性
1 | udevadm info -a /dev/ttyUSBX |
替换 X 为实际设备号。结果一般如下。
步骤二:创建 udev 规则文件
1 | sudo gedit /etc/udev/rules.d/usb-serial.rules |
其中 usb-serial.rules 文件名可以自定义。
步骤三:编写规则模板
示例规则
1 | # 设备 1 规则(示例:绑定到 ttyUSB_CAMERA) |
规则说明
SUBSYSTEMS=="usb"也是一个过滤条件。KERNEL=="ttyUSB*"是正确的,表示无论是ttyUSB*,符合后续芯片型号的就可以被指向SYMLINK+="ttyUSB_SENSOR"。- 但是如果给定了
ttyUSB1或0,那就只有满足上述条件才能通过ttyUSB_SENSOR找到。
步骤四:生效规则
1. 重新加载规则
1 | sudo udevadm control --reload-rules |
2. 查看设备名称更改状况
1 | ls -l /dev | grep ttyUSB |
参考资料
上述是通过识别目标 usb 设备芯片以及相关信息来固定串口,或者也可以通过 pc 端固定物理串口。
原文链接
本文原载于 CSDN:在 Ubuntu 中固定 USB 设备的串口号
最后更新:2026 年 3 月